package JavaEE_notes.common_API.Network;

import java.io.IOException;
import java.net.*;
import java.util.Scanner;

/**
 * UDP通信练习的客户端
 * @author TaiZai
 * @data 2024/9/26 9:52
 */
public class UDP_Client {
    public static void main(String[] args) throws IOException {
        // 1、创建客户端对象  参数为端口号
        DatagramSocket socket = new DatagramSocket(9876);

        // 2、创建数据包对象封装要发送出去的数据
        /*
        * public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
        * 参数一：要发送的数据
        * 参数二：要发送的数据的长度
        * 参数三：接收方的ip，服务的的IP地址
        * 参数四：服务端程序的端口
        * */

        /*
        * 单次发送数据
        * byte[] bytes = "UDP客户端".getBytes();
        * DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 7878);
        *
        * // 3、正式开始发送数据
        * socket.send(packet);
        */

        /*
        * 多次发送数据
        * */
        Scanner sc = new Scanner(System.in);
        String input;
        while(true) {
            input = sc.nextLine();
            if(input.equals("exit")) {
                socket.close();
                break;
            }
            byte[] bytes = input.getBytes();
            DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 7878);

            socket.send(packet);
        }


        // 4、关闭资源
        // System.out.println("客户端资源发送完毕");

    }
}
